This relates generally to physics simulations for scientific and game applications, for example.
A physics simulation may be implemented by a graphics processor. It provides a solution that indicates the movement two bodies take after a collision. Thus, two bodies can be depicted as moving in a given direction with a given velocity. When they collide, the physics solver indicates how they move after the collision.
A penalty based solver calculates new states for N bodies for each successive time step, given parameters for each of the bodies, the body's current states and a list of M joints. A body state is a list of rigid body characteristics that changes over time. The body characteristics may include body position, body orientation, linear body velocity, and angular body velocity, as examples. The body parameters are body characteristics that do not change over time. The body parameters may include body mass and body inertia tensor. The joint list is a list of body pairs that come into contact with information about each contact, including the contact point coordinates and contact normal vector.
The penalty based solver effectively analyzes body motion after a collision. The solver simulates the collision by adding artificial springs between the colliding bodies to avoid body penetration.